{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# §10 Machine Learning\n",
    "\n",
    "## Content\n",
    "\n",
    "    10.1 Data\n",
    "    10.2 Regression\n",
    "    10.3 Classification\n",
    "    10.4 Clustering\n",
    "    10.5 Dimensionality Reduction\n",
    "\n",
    "Machine learning (ML) is a subset of artificial intelligence (AI). It is focused on teaching computers to learn from data and to improve with experience – instead of being explicitly programmed to do so. In machine learning, algorithms are trained to find patterns and correlations in large data sets and to make the best decisions and predictions based on that analysis.\n",
    "\n",
    "Machine learning uses two types of techniques: supervised learning, which trains a model on known input and output data so that it can predict future outputs, and unsupervised learning, which finds hidden patterns or intrinsic structures in input data.\n",
    "\n",
    "### Supervised Learning\n",
    "\n",
    "Supervised machine learning builds a model that makes predictions based on evidence in the presence of uncertainty. A supervised learning algorithm takes a known set of input data and known responses to the data (output) and trains a model to generate reasonable predictions for the response to new data. Use supervised learning if you have known data for the output you are trying to predict.\n",
    "\n",
    "Supervised learning uses classification and regression techniques to develop machine learning models.\n",
    "\n",
    "#### Classification\n",
    "\n",
    "Classification techniques predict discrete responses—for example, whether an email is genuine or spam, or whether a tumor is cancerous or benign. Classification models classify input data into categories. Typical applications include medical imaging, speech recognition, and credit scoring.\n",
    "\n",
    "Use classification if your data can be tagged, categorized, or separated into specific groups or classes. For example, applications for hand-writing recognition use classification to recognize letters and numbers. The most common algorithms for performing classification are:\n",
    "\n",
    "    Naive Bayes\n",
    "Naive Bayes model with Gaussian, multinomial, or kernel predictors\n",
    "\n",
    "    Nearest Neighbors\n",
    "k-nearest neighbor classification\n",
    "\n",
    "    Support Vector Machine Classification\n",
    "Support vector machines for binary or multiclass classification\n",
    "\n",
    "    Neural Networks\n",
    "Neural networks for binary and multiclass classification\n",
    "\n",
    "#### Regression\n",
    "\n",
    "Regression techniques predict continuous responses—for example, hard-to-measure physical quantities such as battery state-of-charge, electricity load on the grid, or prices of financial assets. Typical applications include virtual sensing, electricity load forecasting, and algorithmic trading.\n",
    "\n",
    "Use regression techniques if you are working with a data range or if the nature of your response is a real number, such as temperature or the time until failure for a piece of equipment. The most common algorithms for performing regression are:\n",
    "\n",
    "    Linear Regression\n",
    "Multiple, stepwise, multivariate regression models, and more\n",
    "    \n",
    "    Generalized Linear Models\n",
    "    Logistic regression, multinomial regression, Poisson regression, and more\n",
    "    \n",
    "    Nonlinear Regression\n",
    "Nonlinear fixed- and mixed-effects regression models\n",
    "    \n",
    "    Support Vector Machine Regression\n",
    "Support vector machines for regression models\n",
    "    \n",
    "    Gaussian Process Regression\n",
    "Gaussian process regression models (kriging)\n",
    "    \n",
    "    Neural Networks\n",
    "Neural networks for regression\n",
    "Related Information\n",
    "\n",
    "### Unsupervised Learning\n",
    "\n",
    "Unsupervised learning finds hidden patterns or intrinsic structures in data. It is used to draw inferences from datasets consisting of input data without labeled responses.\n",
    "\n",
    "Clustering is the most common unsupervised learning technique. It is used for exploratory data analysis to find hidden patterns or groupings in data. Applications for cluster analysis include gene sequence analysis, market research, and object recognition.\n",
    "\n",
    "For example, if a cell phone company wants to optimize the locations where they build cell phone towers, they can use machine learning to estimate the number of clusters of people relying on their towers. A phone can only talk to one tower at a time, so the team uses clustering algorithms to design the best placement of cell towers to optimize signal reception for groups, or clusters, of their customers. The most common algorithms for performing clustering are:\n",
    "\n",
    "    Hierarchical Clustering\n",
    "Produce nested sets of clusters\n",
    "    \n",
    "    k-Means and k-Medoids Clustering\n",
    "Cluster by minimizing mean or medoid distance, and calculate Mahalanobis distance\n",
    "    \n",
    "    Density-Based Spatial Clustering of Applications with Noise\n",
    "Find clusters and outliers by using the DBSCAN algorithm\n",
    "    \n",
    "    Spectral Clustering\n",
    "Find clusters by using graph-based algorithm\n",
    "    \n",
    "    Gaussian Mixture Models\n",
    "Cluster based on Gaussian mixture models using the Expectation-Maximization algorithm\n",
    "    \n",
    "    Nearest Neighbors\n",
    "Find nearest neighbors using exhaustive search or Kd-tree search"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### sklearn\n",
    "\n",
    "Sklearn (scikit-learn) is a Python library that provides a wide range of unsupervised and supervised machine learning algorithms.\n",
    "\n",
    "It is also one of the most used machine learning libraries and is built on top of SciPy.\n",
    "\n",
    "The main use cases of this library can be categorized into 6 categories which are the following:\n",
    "\n",
    "    Preprocessing\n",
    "    Regression\n",
    "    Classification\n",
    "    Clustering\n",
    "    Model Selection\n",
    "    Dimensionality Reduction\n",
    "    \n",
    "Reference:\n",
    "\n",
    "https://scikit-learn.org/stable/index.html\n",
    "\n",
    "https://algotrading101.com/learn/sklearn-guide/"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['calibration', 'cluster', 'covariance', 'cross_decomposition', 'datasets', 'decomposition', 'dummy', 'ensemble', 'exceptions', 'experimental', 'externals', 'feature_extraction', 'feature_selection', 'gaussian_process', 'inspection', 'isotonic', 'kernel_approximation', 'kernel_ridge', 'linear_model', 'manifold', 'metrics', 'mixture', 'model_selection', 'multiclass', 'multioutput', 'naive_bayes', 'neighbors', 'neural_network', 'pipeline', 'preprocessing', 'random_projection', 'semi_supervised', 'svm', 'tree', 'discriminant_analysis', 'impute', 'compose', 'clone', 'get_config', 'set_config', 'config_context', 'show_versions']\n"
     ]
    }
   ],
   "source": [
    "import sklearn as skl\n",
    "import numpy as np\n",
    "\n",
    "print(skl.__all__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 10.1 Data\n",
    "\n",
    "### 10.1.1 load data\n",
    "\n",
    "There are three main kinds of dataset interfaces that can be used to get datasets depending on the desired type of dataset.\n",
    "\n",
    "    datasets.load_xxx()\n",
    "They can be used to load small standard datasets\n",
    "\n",
    "    datasets.fetch_xxx()\n",
    "They can be used to download and load larger datasets\n",
    "\n",
    "    datasets.make_xxx()\n",
    "They can be used to generate controlled synthetic datasets\n",
    "\n",
    "https://scikit-learn.org/stable/datasets.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\feature_extraction\\image.py:167: DeprecationWarning: `np.int` is a deprecated alias for the builtin `int`. To silence this warning, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.\n",
      "Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\n",
      "  dtype=np.int):\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(150, 4)\n",
      "(150,)\n",
      "['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']\n",
      "[[5.1 3.5 1.4 0.2]\n",
      " [4.9 3.  1.4 0.2]\n",
      " [4.7 3.2 1.3 0.2]\n",
      " [4.6 3.1 1.5 0.2]\n",
      " [5.  3.6 1.4 0.2]\n",
      " [5.4 3.9 1.7 0.4]\n",
      " [4.6 3.4 1.4 0.3]\n",
      " [5.  3.4 1.5 0.2]\n",
      " [4.4 2.9 1.4 0.2]\n",
      " [4.9 3.1 1.5 0.1]]\n",
      "[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
      " 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2]\n"
     ]
    }
   ],
   "source": [
    "from sklearn import datasets\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "\n",
    "iris = datasets.load_iris()\n",
    "print(iris.data.shape)\n",
    "print(iris.target.shape)\n",
    "print(iris.feature_names)\n",
    "print(iris.data[:10])\n",
    "print(iris.target)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys(['data', 'target', 'feature_names', 'DESCR', 'filename'])\n",
      "(506, 13)\n",
      "(506,)\n",
      "['CRIM' 'ZN' 'INDUS' 'CHAS' 'NOX' 'RM' 'AGE' 'DIS' 'RAD' 'TAX' 'PTRATIO'\n",
      " 'B' 'LSTAT']\n"
     ]
    }
   ],
   "source": [
    "boston = datasets.load_boston()\n",
    "print(boston.keys())\n",
    "print(boston.data.shape)\n",
    "print(boston.target.shape)\n",
    "print(boston.feature_names)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 10.1.2 data preprocess\n",
    "\n",
    "scale"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0. 0. 0.] [1. 1. 1.]\n",
      "[[ 0.         -1.22474487  1.33630621]\n",
      " [ 1.22474487  0.         -0.26726124]\n",
      " [-1.22474487  1.22474487 -1.06904497]]\n",
      "[0. 0. 0.] [1. 1. 1.]\n"
     ]
    }
   ],
   "source": [
    "from sklearn import preprocessing\n",
    "\n",
    "x = np.array([[1,-1,2],[2,0,0],[0,1,-1]])\n",
    "x_scale = preprocessing.scale(x)\n",
    "print(x_scale.mean(axis=0), x_scale.std(axis=0))\n",
    "print(x_scale)\n",
    "\n",
    "std_scale = preprocessing.StandardScaler().fit(x)\n",
    "x_std = std_scale.transform(x)\n",
    "print(x_std.mean(axis=0), x_std.std(axis=0))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "one-hot encoding"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (0, 1)\t1.0\n",
      "  (0, 3)\t1.0\n",
      "  (0, 7)\t1.0\n",
      "[[0. 1. 0. 1. 0. 0. 0. 1. 0.]]\n",
      "[[1. 0. 1. 0. 0. 0. 0. 0. 1.]\n",
      " [0. 1. 0. 1. 0. 1. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 1. 0. 1. 0. 0.]\n",
      " [0. 1. 1. 0. 0. 0. 0. 1. 0.]]\n"
     ]
    }
   ],
   "source": [
    "ohe = preprocessing.OneHotEncoder()\n",
    "x = [['male','red',3],\n",
    "     ['female','green',1],\n",
    "     ['female','blue',0],\n",
    "     ['male','green',2]]\n",
    "x_ohe = ohe.fit(x).transform([['male','green',2]])\n",
    "print(x_ohe)\n",
    "print(x_ohe.toarray())\n",
    "\n",
    "enc = preprocessing.OneHotEncoder(sparse = False) \n",
    "ans = enc.fit_transform([[0, 0, 3],\n",
    "                         [1, 1, 0],\n",
    "                         [0, 2, 1],\n",
    "                         [1, 0, 2]])\n",
    "print(ans)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 10.2 Regression\n",
    "\n",
    "### 10.2.1 Linear regression"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "sklearn.datasets.make_regression(n_samples=100, n_features=100, *, n_informative=10, n_targets=1, bias=0.0, effective_rank=None, tail_strength=0.5, noise=0.0, shuffle=True, coef=False, random_state=None)\n",
    "\n",
    "    n_samples: The number of samples.\n",
    "    n_features: The number of features.\n",
    "    n_informative: The number of informative features, i.e., the number of features used to build the linear model used to generate the output.\n",
    "    n_targets: The number of regression targets, i.e., the dimension of the y output vector associated with a sample. By default, the output is a scalar.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(100, 20) (100,)\n",
      "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)\n",
      "0.9999845923393508\n"
     ]
    }
   ],
   "source": [
    "from sklearn.datasets import make_regression\n",
    "from sklearn import model_selection\n",
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "\n",
    "x_all, y_all = make_regression(n_samples=100, n_features=20, n_informative=10, noise=0.5)\n",
    "print(x_all.shape, y_all.shape)\n",
    "X_train, X_test, Y_train, Y_test = model_selection.train_test_split(\n",
    "    x_all, y_all, train_size=0.5)\n",
    "\n",
    "model = LinearRegression()\n",
    "print(model)\n",
    "model.fit(X_train, Y_train)\n",
    "\n",
    "pred = model.predict(X_test)\n",
    "print(model.score(X_test, Y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 10.3 Classification"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,\n",
      "                       max_features=None, max_leaf_nodes=None,\n",
      "                       min_impurity_decrease=0.0, min_impurity_split=None,\n",
      "                       min_samples_leaf=1, min_samples_split=2,\n",
      "                       min_weight_fraction_leaf=0.0, presort=False,\n",
      "                       random_state=None, splitter='best')\n",
      "[[14  0  0]\n",
      " [ 0 11  2]\n",
      " [ 0  1 17]]\n",
      "[14 13 18]\n"
     ]
    }
   ],
   "source": [
    "from sklearn import tree\n",
    "\n",
    "\n",
    "#split data to trainset and testset\n",
    "X_train, X_test, Y_train, Y_test = model_selection.train_test_split(\n",
    "    iris.data, iris.target, train_size=0.7)\n",
    "\n",
    "#difine a classifier\n",
    "classifier = tree.DecisionTreeClassifier()\n",
    "print(classifier)\n",
    "#train\n",
    "classifier.fit(X_train, Y_train)\n",
    "#predict\n",
    "pred = classifier.predict(X_test)\n",
    "#print confusion_matrix C, \n",
    "#where cij means the sample number in class i but classify to class j\n",
    "print(skl.metrics.confusion_matrix(Y_test, pred))\n",
    "#how many samples of each category\n",
    "print(np.bincount(Y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 10.4 Clustering"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,\n",
      "       n_clusters=3, n_init=10, n_jobs=None, precompute_distances='auto',\n",
      "       random_state=None, tol=0.0001, verbose=0)\n",
      "predict center:\n",
      "[[5.006      3.428      1.462      0.246     ]\n",
      " [5.9016129  2.7483871  4.39354839 1.43387097]\n",
      " [6.85       3.07368421 5.74210526 2.07105263]]\n",
      "true center:\n",
      "[5.006 3.428 1.462 0.246]\n",
      "[5.936 2.77  4.26  1.326]\n",
      "[6.588 2.974 5.552 2.026]\n",
      "\n",
      "predict labels:\n",
      "[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
      " 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 2 2 2 1 2 2 2 2\n",
      " 2 2 1 1 2 2 2 2 1 2 1 2 1 2 2 1 1 2 2 2 2 2 1 2 2 2 2 1 2 2 2 1 2 2 2 1 2\n",
      " 2 1]\n",
      "78.85144142614601\n"
     ]
    }
   ],
   "source": [
    "from sklearn.cluster import KMeans\n",
    " \n",
    "model = KMeans(n_clusters=3)\n",
    "print(model)\n",
    "model.fit(iris.data)\n",
    "\n",
    "print('predict center:')\n",
    "print(model.cluster_centers_)\n",
    "print('true center:')\n",
    "print(iris.data[:50].mean(axis=0))\n",
    "print(iris.data[50:100].mean(axis=0))\n",
    "print(iris.data[100:].mean(axis=0))\n",
    "\n",
    "print('\\npredict labels:')\n",
    "print(model.labels_)\n",
    "print(model.inertia_) #sum of distance square to the center, the smaller the better"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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SEmJdgREUcFhEkREREQUs5gMExEREVHMYjJMRERERDGLyTARERERxSwmw0REREQUs5gMExEREVHMYjJMRERERDGLyTARERERxSwmw0REREQUs5gMExEREVHMYjJMRERERDGLyTARERERxSwmw0REREQUs5gMExEREVHMYjJMRERERDHLHu0AqJoSATIzgZUrgfbtgZ49AWOiHRUREQWyaRPw009A/frAOecADke0IyKqEZgMk7/sbOCCC4ClS8uWdewIzJgBpKVFLy4iIvInAtx/P/DOO4DdrhcukpKAWbOA446LdnRE1R6HSZC/Rx8FFi0CcnLKXsuWAffdF+3IiIjI11dfAe++C+Tn68WMrCxg717goos0USaioJgMk78PPwQKCryXFRYCn3zCjpWIqLp58029aOFJBNi9G/jtt+jERFSDMBkmf76JcCmXq2rjICKi8mVnWy+32YDc3KqNhagGYjJM/s45RztRT8YAZ5zBh+iIiKqba68FnE7/5TYb0K1b1cdDVMMwGSZ/r78O1KtX1rkmJQF16uitOCIiql5uu00flEtO1q8dDu2/P/gAiI+PbmxENQBnkyB/rVoBa9cC778PLF4MdOkC3HyzTtdDRETVS2IiMG8e8MUXwLRpQOPGwK23Au3aRTsyohqByTBZq1MHeOCBaEdBREShcDiAq6/WFxFVCIdJEBEREVHMYjJMRERERDGLyTARERERxSwmwzWdywVs3Qrk5UU7EiIiKo8IsGMHcOhQtCMhohJMhmuy0aOBhg2BDh10pofBg4Hi4mhHRUREVmbNAlq3Btq0ARo1Avr2Bfbvj3ZURDGPs0nUVBMnAo895l1d6O23AbsdePHF6MVFRET+1q4F+vXz7rNnzADOPx9YtCh6cRERrwzXWEOH+pfZzM0F3niDZZOJiKqb0aOBwkLvZS4XsGoVsGxZdGIiIgBMhmuu7dutlxcVAVlZVRsLEREFt3at9s++4uKAzZurPh4i+huT4ZoqUL35evW0YAYREVUfp5+upe19FRYCXbtWfTxE9DcmwzXViBFae96T0wm8/DJg46+ViKha+ec/gbQ0fa6jlNMJXHst0Lx59OIiIibDNdY//gH89JM+fNGoEdCzp9alHzgw2pEREZGvevWApUuBW24BGjcGjjlGH3YeNy7akRHFPM4mUZN17QpMmxbtKIiIKBRHH62z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\n",
      "text/plain": [
       "<Figure size 864x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.colors import ListedColormap\n",
    "import numpy as np\n",
    "\n",
    "plt.figure(figsize=(12,6))\n",
    "plt.subplot(121)\n",
    "plt.scatter(iris.data[:,0], iris.data[:,1], c=iris.target, \n",
    "            cmap=ListedColormap(['r','g','b']))\n",
    "true_centroid = np.vstack([iris.data[iris.target==0,:].mean(axis=0),\n",
    "                           iris.data[iris.target==1,:].mean(axis=0),\n",
    "                           iris.data[iris.target==2,:].mean(axis=0)])\n",
    "plt.scatter(true_centroid[:,0], true_centroid[:,1], c=[0,1,2], \n",
    "            marker='^', s=200, edgecolors='k',\n",
    "            cmap=ListedColormap(['#FFAAAA','#AAFFAA','#AAAAFF']))\n",
    "plt.title('true class')\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.scatter(iris.data[:,0], iris.data[:,1], c=model.labels_, \n",
    "            cmap=ListedColormap(['b','r','g']))\n",
    "plt.scatter(model.cluster_centers_[:,0], model.cluster_centers_[:,1], \n",
    "            c=[2,0,1], marker='^', s=200, edgecolors='k',\n",
    "            cmap=ListedColormap(['#FFAAAA','#AAFFAA','#AAAAFF']))\n",
    "plt.title('cluster class')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 10.5 Dimensionality Reduction\n",
    "\n",
    "### 10.5.1 Principal Component Analysis (PCA)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(150, 2)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.decomposition import PCA\n",
    "\n",
    "\n",
    "pca1 = PCA(n_components=2)\n",
    "pca1.fit(iris.data)\n",
    "iris2 = pca1.transform(iris.data)\n",
    "print(iris2.shape)\n",
    "\n",
    "plt.scatter(iris2[:,0], iris2[:,1], c=iris.target, \n",
    "            cmap=ListedColormap(['r','g','b']))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Homework\n",
    "\n",
    "1. Iris classification based on k-nearest neighbor algorithm\n",
    "\n",
    "2. Use other data from the sklearn datasets module, such as wine data or other datasets, to perform data preprocessing, regression, classification (k-nearest neighbor algorithm, decision tree, etc.), dimensionality reduction (PCA), and other operations on the dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
